# 第一阶段：构建应用
FROM golang:1.24.3-alpine AS builder

# 设置工作目录
WORKDIR /app

# 复制go.mod和go.sum文件（如果存在）
COPY go.mod go.sum ./

# 设置国内镜像源并下载依赖
ENV GOPROXY=https://goproxy.cn,direct
RUN go mod download

# 复制项目文件
COPY . .

# 构建应用
RUN CGO_ENABLED=0 GOOS=linux go build -o /password-generator

# 第二阶段：运行应用
FROM alpine:latest

# 设置工作目录
WORKDIR /app

# 从构建阶段复制可执行文件
COPY --from=builder /password-generator /app/password-generator

# 复制静态文件和模板
COPY ./static /app/static
COPY ./templates /app/templates

# 暴露端口
EXPOSE 8080

# 启动应用
CMD ["./password-generator"]